Controller nodes in a controller cluster manage the processing of packets by forwarding elements in a network control system. The forwarding elements (e.g., switches, routers, etc.) manage the sending of packets between various physical and virtual elements.
Upgrading the controller nodes in a controller cluster may cause a dataplane outage. The forwarding of packets and responses to Application Programming Interface (API) requests become unreliable during the upgrade of the individual controller nodes when different versions of the controller nodes are running in the controller cluster if the upgrade is not implemented properly.
It is difficult to upgrade all of the controller nodes in a controller cluster in a way that does not cause the dataplane to be unavailable during a transition. During upgrades, the controller cluster should be able to respond to API requests and other external events (e.g., virtual machine (VM) creation/mobility).